home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicTableUI$NavigationalAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.8 KB  |  112 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.util.EventObject;
  6. import javax.swing.JTable;
  7. import javax.swing.ListSelectionModel;
  8.  
  9. class BasicTableUI$NavigationalAction implements ActionListener {
  10.    // $FF: renamed from: dx int
  11.    protected int field_0;
  12.    // $FF: renamed from: dy int
  13.    protected int field_1;
  14.    protected boolean toggle;
  15.    protected boolean extend;
  16.    protected boolean inSelection;
  17.    protected int anchorRow;
  18.    protected int anchorColumn;
  19.    protected int leadRow;
  20.    protected int leadColumn;
  21.  
  22.    protected BasicTableUI$NavigationalAction(int var1, int var2, boolean var3, boolean var4, boolean var5) {
  23.       this.field_0 = var1;
  24.       this.field_1 = var2;
  25.       this.toggle = var3;
  26.       this.extend = var4;
  27.       this.inSelection = var5;
  28.    }
  29.  
  30.    public void actionPerformed(ActionEvent var1) {
  31.       JTable var2 = (JTable)((EventObject)var1).getSource();
  32.       ListSelectionModel var3 = var2.getSelectionModel();
  33.       this.anchorRow = var3.getAnchorSelectionIndex();
  34.       this.leadRow = var3.getLeadSelectionIndex();
  35.       ListSelectionModel var4 = var2.getColumnModel().getSelectionModel();
  36.       this.anchorColumn = var4.getAnchorSelectionIndex();
  37.       this.leadColumn = var4.getLeadSelectionIndex();
  38.       int var5 = this.anchorRow;
  39.       int var6 = this.anchorColumn;
  40.       if (!this.inSelection) {
  41.          this.moveWithinTableRange(var2, this.field_0, this.field_1, this.extend);
  42.          if (!this.extend) {
  43.             BasicTableUI.access$0(var2, this.anchorRow, this.anchorColumn, false, this.extend);
  44.          } else {
  45.             BasicTableUI.access$0(var2, this.leadRow, this.leadColumn, false, this.extend);
  46.          }
  47.       } else if (this.moveWithinSelectedRange(var2, this.field_0, this.field_1, false)) {
  48.          var3.setAnchorSelectionIndex(this.anchorRow);
  49.          var4.setAnchorSelectionIndex(this.anchorColumn);
  50.       } else {
  51.          BasicTableUI.access$0(var2, this.anchorRow, this.anchorColumn, false, false);
  52.       }
  53.  
  54.       if (var2.isEditing() && (var5 != var3.getAnchorSelectionIndex() || var6 != var4.getAnchorSelectionIndex())) {
  55.          var2.getCellEditor().stopCellEditing();
  56.       }
  57.  
  58.    }
  59.  
  60.    private int clipToRange(int var1, int var2, int var3) {
  61.       return Math.min(Math.max(var1, var2), var3 - 1);
  62.    }
  63.  
  64.    private int compare(int var1, int var2, int var3) {
  65.       return var1 < var2 ? -1 : (var1 >= var3 ? 1 : 0);
  66.    }
  67.  
  68.    private int compare(int var1, ListSelectionModel var2) {
  69.       return this.compare(var1, var2.getMinSelectionIndex(), var2.getMaxSelectionIndex() + 1);
  70.    }
  71.  
  72.    private boolean moveWithinSelectedRange(JTable var1, int var2, int var3, boolean var4) {
  73.       ListSelectionModel var5 = var1.getSelectionModel();
  74.       ListSelectionModel var6 = var1.getColumnModel().getSelectionModel();
  75.       int var7 = this.anchorRow + var3;
  76.       int var8 = this.anchorColumn + var2;
  77.       int var11 = this.selectionSpan(var5);
  78.       int var12 = this.selectionSpan(var6);
  79.       boolean var13 = var11 * var12 > 1;
  80.       int var9;
  81.       int var10;
  82.       if (var13) {
  83.          var9 = this.compare(var7, var5);
  84.          var10 = this.compare(var8, var6);
  85.       } else {
  86.          var11 = var1.getRowCount();
  87.          var12 = var1.getColumnCount();
  88.          var9 = this.compare(var7, 0, var11);
  89.          var10 = this.compare(var8, 0, var12);
  90.       }
  91.  
  92.       this.anchorRow = var7 - var11 * var9;
  93.       this.anchorColumn = var8 - var12 * var10;
  94.       return !var4 ? this.moveWithinSelectedRange(var1, var9, var10, true) : var13;
  95.    }
  96.  
  97.    private void moveWithinTableRange(JTable var1, int var2, int var3, boolean var4) {
  98.       if (var4) {
  99.          this.leadRow = this.clipToRange(this.leadRow + var3, 0, var1.getRowCount());
  100.          this.leadColumn = this.clipToRange(this.leadColumn + var2, 0, var1.getColumnCount());
  101.       } else {
  102.          this.anchorRow = this.clipToRange(this.anchorRow + var3, 0, var1.getRowCount());
  103.          this.anchorColumn = this.clipToRange(this.anchorColumn + var2, 0, var1.getColumnCount());
  104.       }
  105.  
  106.    }
  107.  
  108.    private int selectionSpan(ListSelectionModel var1) {
  109.       return var1.getMaxSelectionIndex() - var1.getMinSelectionIndex() + 1;
  110.    }
  111. }
  112.